//对外暴露配置路由(常量路由)
import { RouteRecordRaw } from "vue-router";

export const LoginPath = '/login'
export const constRoutes = [
    {
        //登录
        path: LoginPath,
        component: () => import('@/views/login/index.vue'),
        name: 'login', //命名路由
        meta: {//即menu_meta供菜单使用
            title: '登录',
            hidden: true,//此路由 无需 在 侧根 展示,
            elementPlusIconVue: 'Promotion' // 菜单文字左侧图标，element-plus任意图标名，来源 ( https://element-plus.org/en-US/component/icon.html#icon-collection ), 下同不再赘述
        }
    },
    {
        //登录成功以后展示数据的路由
        path: '/',   // 浏览器地址栏为 http://localhost:5173/#/
        component: () => import('@/layout/index.vue'),
        name: 'layout',
        redirect: '/home',
        meta: {//即menu_meta供菜单使用
            // 根路由 无需要 展示, 因此 没有字段 title 、elementPlusIconVue
        },
        children: [//测试 字段children有多孩子， 将children递归 展示为 本组件DynMenu
            {
                path: '/home',
                component: () => import('@/views/home/index.vue'),
                meta: {//即menu_meta供菜单使用
                    title: '首页',
                    elementPlusIconVue: 'HomeFilled'
                },
            }
        ]
    },
    {
        //404
        path: '/404',
        component: () => import('@/views/404/index.vue'),
        name: '404',
        meta: {//即menu_meta供菜单使用
            title: '路径不存在时显示页',
            hidden: true,//此路由 无需 在 侧根 展示
            elementPlusIconVue: 'Remove'
        },
    },
    {
        //测试 只有一个孩子的 情况
        path: '/screen',
        component: () => import('@/views/screen/index.vue'),
        name: 'Screen',
        meta: {//即menu_meta供菜单使用
            title: '数据大屏',
            elementPlusIconVue: 'Platform'
        },
    }
] as RouteRecordRaw[]

export const asyncRoute = [
    {
        path: '/acl',
        component: () => import('@/layout/index.vue'),
        name: 'Acl',
        meta: {//即menu_meta供菜单使用
            title: '权限管理',
            elementPlusIconVue: 'Lock'
        },
        redirect: '/acl/user', // 访问 本一级路由(/acl) 跳转到 本一级路由下的第一个二级路由(/acl/user)
        children: [
            {
                path: '/acl/user',
                component: () => import('@/views/acl/user/index.vue'),
                name: 'User',
                meta: {//即menu_meta供菜单使用
                    title: '用户管理',
                    elementPlusIconVue: 'User'
                }
            },
            {
                path: '/acl/role',
                component: () => import('@/views/acl/role/index.vue'),
                name: 'Role',
                meta: {//即menu_meta供菜单使用
                    title: '角色管理',
                    elementPlusIconVue: 'UserFilled'
                }
            },
            {
                path: '/acl/permission',
                component: () => import('@/views/acl/permission/index.vue'),
                name: 'Permission',
                meta: {//即menu_meta供菜单使用
                    title: '菜单管理',
                    elementPlusIconVue: 'Monitor'
                }
            },
        ]
    },
    {
        path: '/product',
        component: () => import('@/layout/index.vue'),
        name: 'Product',
        meta: {//即menu_meta供菜单使用
            title: '商品管理',
            elementPlusIconVue: 'Goods'
        },
        redirect: '/product/trademark', // 访问 本一级路由(/product) 跳转到 本一级路由下的第一个二级路由(/product/trademark)
        children: [
            {
                path: '/product/trademark',
                component: () => import("@/views/product/trademark/index.vue"),
                name: 'Trademark',
                meta: {//即menu_meta供菜单使用
                    title: '品牌管理',
                    elementPlusIconVue: 'ShoppingCartFull'
                }
            },
            {
                path: '/product/attr',
                component: () => import("@/views/product/attr/index.vue"),
                name: 'Attr',
                meta: {//即menu_meta供菜单使用
                    title: '属性管理',
                    elementPlusIconVue: 'ChromeFilled'
                }
            },
            {
                path: '/product/spu',
                component: () => import("@/views/product/spu/index.vue"),
                name: 'Spu',
                meta: {//即menu_meta供菜单使用
                    title: 'SPU管理',
                    elementPlusIconVue: 'Calendar'
                }
            },
            {
                path: '/product/sku',
                component: () => import("@/views/product/sku/index.vue"),
                name: 'Sku',
                meta: {//即menu_meta供菜单使用
                    title: 'SKU管理',
                    elementPlusIconVue: 'Orange'
                }
            },
        ]
    }
]

export const anyRoute = [
    {
        //其他(匹配不到上面三个路由时)
        path: '/:pathMatch(.*)*',
        redirect: '/404',
        name: 'Any',
        meta: {//即menu_meta供菜单使用
            title: '任意页',
            hidden: true,//此路由 无需 在 侧根 展示
            elementPlusIconVue: 'Plus'
        },
    },
]
